package com.video.video.service;

import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.video.video.domain.app.dto.AppUserRegisterDto;
import com.video.video.domain.app.dto.MemberDto;
import com.video.video.domain.vo.UserQuery;
import java.util.List;
import com.video.video.domain.DUser;

/**
 * 客户Service接口
 *
 * @author ruoyi
 * @date 2022-09-27
 */
public interface IDUserService
{

    /**
     * 查询当前会员下子级数量
     * @param userId
     * @return
     */
    Integer getNumsByUserId(String userId);
    /***
     * 根据会员ID
     * 查询成员列表
     * @param userId
     * @return
     */
    List<MemberDto> getMemberListByUserId(String userId);
    /**
     * 查询客户
     *
     * @param id 客户主键
     * @return 客户
     */
    public DUser selectDUserById(String id);

    /**
     * 查询客户列表
     *
     * @param dUser 客户
     * @return 客户集合
     */
    public List<DUser> selectDUserAllList(DUser dUser);

    /**
     * 查询客户列表
     *
     * @param dUser 客户
     * @return 客户集合
     */
    public List<DUser> selectDUserList(UserQuery dUser);


    /**
     * 查询到期的 非普通会员的ID集合
     * @return
     */
    public List<Integer> listIdBecomeDue();


    /**
     * 将所有到期的VIP会员 改成非VIP
     */
    public void updateBecomeDueVip();


    /**
     * 新增客户
     *
     * @param dUser 客户
     * @return 结果
     */
    public int insertDUser(DUser dUser);

    /**
     * 修改客户
     *
     * @param dUser 客户
     * @return 结果
     */
    public int updateDUser(DUser dUser);


    /***
     * 修改用户基础信息
     * @param dUser
     * @return
     */
    public int updateDUserInfo(DUser dUser);
    /**
     * 批量删除客户
     *
     * @param ids 需要删除的客户主键集合
     * @return 结果
     */
    public int deleteDUserByIds(String[] ids);

    /**
     * 删除客户信息
     *
     * @param id 客户主键
     * @return 结果
     */
    public int deleteDUserById(String id);

    /***
     * 发送手机验证码
     * @param phone
     * @param smsCode
     * @param activeCode
     * @return
     */
    SendSmsResponse sendSms(String phone, String smsCode, String activeCode);
}
